package org.ipower.examsystem.action;

import java.util.ArrayList;
import java.util.List;
import org.ipower.examsystem.domain.Catalog;
import org.ipower.examsystem.domain.DataField;
import org.ipower.examsystem.service.CatalogService;
import org.ipower.platform.domain.Pager;
import org.ipower.platform.domain.QueryCondition;
/**
 * 考试科目列表。
 * @author jeasonyoung
 */
public class CatalogAction extends ModuleBaseAction<CatalogService> {
    private static final long serialVersionUID = 1L;
    private Pager<Catalog> dataSource = new Pager<Catalog>();
    private List<DataField> list = new ArrayList<DataField>();
    private String catalogName,catalogID;
    /**
     * 设置考试科目名称。
     * @return 考试科目名称。
     * */
    public void setCatalogName(String catalogName) {
        this.catalogName = catalogName;
    }
    /**
     * 设置考试科目ID.
     * @param catalogID 考试科目ID。
     * */
    public void setCatalogID(String catalogID) {
        this.catalogID = catalogID;
    }
    /**
     * 获取列表数据源。
     * @return 分页数据。
     * */
    public Pager<Catalog> getDataSource(){
        return this.dataSource;
    }
    /**
     * 获取所有子科目集合.
     * */
    public List<DataField> getNotSelfCatalog(){
        return this.list;
    }
    /**
    * 获取列表数据。
    * @return 执行结果。
    * */
    public String list(){
        List<QueryCondition> entities = new  ArrayList<QueryCondition>(); 
        if(this.catalogName != null && !this.catalogName.isEmpty()){
            entities.add(new QueryCondition("CatalogName", this.catalogName,QueryCondition.MODE_ANY));
        }
        this.dataSource = this.getService().findAll(this.getAscProperty(), this.isAsc(), this.getStart(), this.getLimit(), entities);
        return SUCCESS;
    }
    /**
     * 获取不包括指定考试科目ID子目录所有子科目集合.
     * @return 执行 结构.
     * */
    public String NotSelfCatalog(){
        this.list = this.getService().NotSelfCatalog(this.catalogID);
        return SUCCESS;
    }
    /**
    * 默认执行。
    * @return 执行结果。
    * */
    @Override
    public String execute() throws Exception{
        return SUCCESS;
    }
}